<?php

/**
 * 输出接口数据
 * @param array $datas 返回的接口数据
 * @param int $status 当前状态 0/1
 * @param string $info 当前消息 可选，为空时由客户端取默认提示(默认提示包含成功的默认提示与失败的默认提示)
 */
function output($datas, $status = 1, $info = "")
{
    header('Content-type: application/json');
    $data['status'] =(string)$status;
    $data['info'] =$info;
    $data['data']=$datas;
    if(empty($data['data'])){
        $data['data']=(object)array();
    }
    _unsetNull($data);
    echo(json_encode($data));
    exit(0);
}

/**
 * @param $arr
 * @return array|string
 *  处理所有NULL值
 */
function _unsetNull(&$arr){
    if($arr !== null){
        if(is_array($arr)){
            if(!empty($arr)){
                foreach($arr as $key => $value){
                    if($value === null){
                        $arr[$key] = '';
                    }else{
                        $arr[$key] = _unsetNull($value);      //递归再去执行
                    }
                }
            }else{ $arr = []; }
        }else{
            if($arr === null){ $arr = ''; }elseif(is_numeric($arr)){$arr=(string)$arr;}         //注意三个等号
        }
    }else{ $arr = ''; }
    return $arr;
}